//package client.comm.baoding.SweetAlert;
//
//import android.content.Context;
//import android.graphics.Canvas;
//import android.graphics.Paint;
//import android.graphics.RectF;
//import android.util.AttributeSet;
//import android.view.View;
//import android.view.animation.Animation;
//import android.view.animation.Transformation;
//
//import client.comm.baoding.R;
//
//public class SuccessTickView extends View {
//    private float mDensity = -1;
//    private Paint mPaint;
//    private final float CONST_RADIUS = dip2px(1.2f);
//    private final float CONST_RECT_WEIGHT = dip2px(3);
//    private final float CONST_LEFT_RECT_W = dip2px(15);
//    private final float CONST_RIGHT_RECT_W = dip2px(25);
//    private final float MIN_LEFT_RECT_W = dip2px(3.3f);
//    private final float MAX_RIGHT_RECT_W = CONST_RIGHT_RECT_W + dip2px(6.7f);
//
//    private float mMaxLeftRectWidth;
//    private float mLeftRectWidth;
//    private float mRightRectWidth;
//    private boolean mLeftRectGrowMode;
//
//    public SuccessTickView(Context context) {
//        super(context);
//        init();
//    }
//
//    public SuccessTickView(Context context, AttributeSet attrs){
//        super(context,attrs);
//        init();
//    }
//
//    private void init () {
//        mPaint = new Paint();
//        mPaint.setColor(getResources().getColor(R.color.success_stroke_color));
//        mLeftRectWidth = CONST_LEFT_RECT_W;
//        mRightRectWidth = CONST_RIGHT_RECT_W;
//        mLeftRectGrowMode = false;
//    }
//
//    @Override
//    public void draw(Canvas canvas) {
//        super.draw(canvas);
//        int totalW = getWidth();
//        int totalH = getHeight();
//        // rotate canvas first
//        canvas.rotate(45, totalW / 2, totalH / 2);
//
//        totalW /= 1.2;
//        totalH /= 1.4;
//        mMaxLeftRectWidth = (totalW + CONST_LEFT_RECT_W) / 2 + CONST_RECT_WEIGHT - 1;
//
//        RectF leftRect = new RectF();
//        if (mLeftRectGrowMode) {
//            leftRect.left = 0;
//            leftRect.right = leftRect.left + mLeftRectWidth;
//            leftRect.top = (totalH + CONST_RIGHT_RECT_W) / 2;
//            leftRect.bottom = leftRect.top + CONST_RECT_WEIGHT;
//        } else {
//            leftRect.right = (totalW + CONST_LEFT_RECT_W) / 2 + CONST_RECT_WEIGHT - 1;
//            leftRect.left = leftRect.right - mLeftRectWidth;
//            leftRect.top = (totalH + CONST_RIGHT_RECT_W) / 2;
//            leftRect.bottom = leftRect.top + CONST_RECT_WEIGHT;
//        }
//
//        canvas.drawRoundRect(leftRect, CONST_RADIUS, CONST_RADIUS, mPaint);
//
//        RectF rightRect = new RectF();
//        rightRect.bottom = (totalH + CONST_RIGHT_RECT_W) / 2 + CONST_RECT_WEIGHT - 1;
//        rightRect.left = (totalW + CONST_LEFT_RECT_W) / 2;
//        rightRect.right = rightRect.left + CONST_RECT_WEIGHT;
//        rightRect.top = rightRect.bottom - mRightRectWidth;
//        canvas.drawRoundRect(rightRect, CONST_RADIUS, CONST_RADIUS, mPaint);
//    }
//
//    public float dip2px(float dpValue) {
//        if(mDensity == -1) {
//            mDensity = getResources().getDisplayMetrics().density;
//        }
//        return dpValue * mDensity + 0.5f;
//    }
//
//    public void startTickAnim () {
//        // hide tick
//        mLeftRectWidth = 0;
//        mRightRectWidth = 0;
//        invalidate();
//        Animation tickAnim = new Animation() {
//            @Override
//            protected void applyTransformation(float interpolatedTime, Transformation t) {
//                super.applyTransformation(interpolatedTime, t);
//                if (0.54 < interpolatedTime && 0.7 >= interpolatedTime) {  // grow left and right rect to right
//                    mLeftRectGrowMode = true;
//                    mLeftRectWidth = mMaxLeftRectWidth * ((interpolatedTime - 0.54f) / 0.16f);
//                    if (0.65 < interpolatedTime) {
//                        mRightRectWidth = MAX_RIGHT_RECT_W * ((interpolatedTime - 0.65f) / 0.19f);
//                    }
//                    invalidate();
//                } else if (0.7 < interpolatedTime && 0.84 >= interpolatedTime) { // shorten left rect from right, still grow right rect
//                    mLeftRectGrowMode = false;
//                    mLeftRectWidth = mMaxLeftRectWidth * (1 - ((interpolatedTime - 0.7f) / 0.14f));
//                    mLeftRectWidth = mLeftRectWidth < MIN_LEFT_RECT_W ? MIN_LEFT_RECT_W : mLeftRectWidth;
//                    mRightRectWidth = MAX_RIGHT_RECT_W * ((interpolatedTime - 0.65f) / 0.19f);
//                    invalidate();
//                } else if (0.84 < interpolatedTime && 1 >= interpolatedTime) { // restore left rect width, shorten right rect to const
//                    mLeftRectGrowMode = false;
//                    mLeftRectWidth = MIN_LEFT_RECT_W + (CONST_LEFT_RECT_W - MIN_LEFT_RECT_W) * ((interpolatedTime - 0.84f) / 0.16f);
//                    mRightRectWidth = CONST_RIGHT_RECT_W + (MAX_RIGHT_RECT_W - CONST_RIGHT_RECT_W) * (1 - ((interpolatedTime - 0.84f) / 0.16f));
//                    invalidate();
//                }
//            }
//        };
//        tickAnim.setDuration(750);
//        tickAnim.setStartOffset(100);
//        startAnimation(tickAnim);
//    }
//}